package com.example.aiquestions.mapper;

import com.example.aiquestions.entity.QuestionLibrary;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface QuestionLibraryMapper {
    /**
     * 根据用户ID和学科ID获取题库列表
     */
    List<QuestionLibrary> getLibraryListByUserAndSubject(@Param("userId") Long userId, @Param("subjectId") Long subjectId);

    /**
     * 根据学科ID获取题库列表
     */
    List<QuestionLibrary> getLibraryListBySubject(@Param("subjectId") Long subjectId);

    /**
     * 根据题库ID获取题库信息
     */
    QuestionLibrary getLibraryById(@Param("id") String id);

    /**
     * 创建题库
     */
    int createLibrary(QuestionLibrary library);

    /**
     * 批量插入题库-题目关联
     */
    int batchInsertLibraryQuestions(@Param("libraryId") String libraryId, @Param("questionIds") List<Long> questionIds);

    /**
     * 更新题库
     */
    int updateLibrary(QuestionLibrary library);

    /**
     * 删除题库（软删除）
     */
    int deleteLibrary(@Param("id") String id);

    /**
     * 更新题库题目数量
     */
    int updateQuestionCount(@Param("id") String id);

    /**
     * 删除题库中的题目
     */
    int deleteQuestions(@Param("libraryId") String libraryId, @Param("questionIds") List<Long> questionIds);

    /**
     * 获取题库中的题目ID列表
     */
    List<Long> getLibraryQuestionIds(@Param("libraryId") String libraryId);
}